using System;
using System.Collections.Generic;
using System.Text;

namespace BlogEngine.Core.Provider.Interfaces
{
    public interface IStorable<T> 
    {
        /// <summary>
        /// Retrieves an object from the provider based on the specified id.
        /// </summary>
        T Select(Guid id);
        /// <summary>
		/// Inserts a new object into the data store specified by the provider.
        /// </summary>
        void Insert(T item);
        /// <summary>
		/// Updates an existing object in the data store specified by the provider.
        /// </summary>
        void Update(T item);
        /// <summary>
		/// Deletes a object from the data store specified by the provider.
        /// </summary>
        void Delete(T item);
        /// <summary>
		/// Retrieves all object from the provider and returns them in a List.
        /// </summary>
        List<T> Fill();
    }
}
